package com.xsd.state.computerDemo;

/**
 * @Description: 状态模式demo
 * @Author: zhoufuzong
 * @Created: 2021-03-11 22:08:19
 * @Version: 1.1.0
 */

/**
 * 在开机状态下，你可以在电脑上打开应用，设置主题，修改主题，关闭应用的操作；
 * 而当电脑处于休眠状态下你需要唤醒电脑才能执行相应的操作；
 * 当处于关机状态你却任何操作都不能执行。
 *
 * 状态设模式是将每一个条件放到一个独立的类中，这样就可以根据对象自身的情况将对象的状态作为一个对象，着一个对象不依赖其他的对象而对立变化。实现机制就是多态。
 */

/**
 * 对象只是承载状态的载体
 * 具体执行什么的行为由状态来决定
 */
public class Client {

    public static void main(String[] args) {
        PCController controller = new PCController();
        controller.powerOn();
        controller.openApplication();
        controller.closeApplication();
        controller.modifyTheme();

        controller.powerSleep();
        controller.openApplication();
        controller.closeApplication();
        controller.modifyTheme();

        controller.powerOff();
        controller.openApplication();
        controller.closeApplication();
        controller.modifyTheme();

    }
}
